
# 使用均匀分布随机数生成1000个 身高 样本，取值范围为 [0,1)
heights = rand(Float64, 1000)

# 使用均匀分布随机数生成1000个 体重 样本，取值范围为 [0,1)
weights = rand(Float64, 1000)

# 将 身高 数据映射到 [1.5, 1.8) 米
heights = heights .* (1.8-1.5) .+ 1.5

# 将 体重 数据映射到 [30, 100) 千克
weights = weights .* (100-30) .+ 30

# 定义BMI指数计算函数
bmi(w, h) = w / (h^2)

# 计算1000个样本的BMI指数
indexes = broadcast(bmi, weights, heights)

# 或者以下面的语句替代上述的两个语句
# indexes = weights ./ (heights.^2)

# 对BMI指数进行分类
# 1-体重过低，2-正常范围，3-肥胖前期，4-I度肥胖，5-II度肥胖，6-III度肥胖
function bmi_category(index::Float64)
  class = 0
  if index < 18.5
     class = 1
  elseif index < 24
     class = 2
  elseif index < 28
     class = 3
  elseif index < 30
     class = 4
  elseif index < 40
     class = 5
  else
     class = 6
  end
  
  class            # 返回分类编号
end

# 计算每个样本的BMI分类
classes = bmi_category.(indexes)

# 统计每个类别的数量
for c in [1 2 3 4 5 6]               # 遍历6个类别，c为类别ID
  n = count(x->(x==c), classes)      # x->(x==c)为匿名函数
  println("category ", c, " ", n)    # 打印结果
end
